package java035_74;

import java.util.ArrayList;
import java.util.Scanner;

public class App {
	public static void main(String[] args) {
		ArrayList<Item> list=new ArrayList<Item>();
		while(true){
			mainMenu();
			chooseFuction(list);
		}
	}
/*
 * 如果字符串比较相同 要equals
 */
	private static void chooseFuction(ArrayList<Item> list) {
		System.out.println("请输入你要操作的功能序号:");
		Scanner sc=new Scanner(System.in);
		String choose = sc.next();
		switch (choose) {
			case "1":
				showFruitList(list);
				break;
			case "2":
				addFruitList(list);
				break;
			case "3":
				deleteFruitList(list);
				break;
			case "4":
				udpateFruitList(list);
				break;
			case "5":
				searchFruitList(list);
				break;
			case "6":
				System.out.println("退出系统欢迎下次再来哦");
				return;
			default:
				break;
		}
	}

	private static void searchFruitList(ArrayList<Item> list) {
		// TODO Auto-generated method stub
		//输入a  会出来商品  aa和ab
		System.out.println("请输入您想要搜索的商品名（类似就行）：");
		ArrayList<Item> result=new ArrayList<>();
		Scanner scanner=new Scanner(System.in);
		String searchName=scanner.next().toUpperCase();
		for (int i=0;i<list.size();i++){
			String temp2=list.get(i).getName().toUpperCase();
			String[] temp3=temp2.split(searchName);
			if(temp3.length==0){
				result.add(list.get(i));
			}else if(temp3.length==1){
				String temp4=searchName+temp2;
				String[] temp5=temp4.split(searchName);
				int k1=0;
				for (int i2=0;i2<temp5.length;i2++){
					if (temp5[i2].equals(temp2)==true){
						k1++;
					}
				}
				if (k1==0){
					result.add(list.get(i));
				}

			}else if (temp3.length>1){
				result.add(list.get(i));
			}
		}
		if (result.size()==0){
			System.out.println("没有符合条件的商品");
		}else{
			showFruitList(result);
		}



	}

	private static void udpateFruitList(ArrayList<Item> list) {
		// TODO Auto-generated method stub
		//输入商品编码 没有会给提示
		//1.修改全部  2.修改某个字段
		Scanner scanner=new Scanner(System.in);
		System.out.println("输入任意数字开始修改商品，输入0退出修改商品界面");
		int k=scanner.nextInt();
		while (k!=0){
			System.out.println("请输入您想要修改信息的商品名称：");
			String updateName=scanner.next();
			int temp=0;
			int index1=0;
			for (int i=0;i<list.size();i++){
				if (list.get(i).getName().equals(updateName)==true){
					temp=1;
					index1=i;
					break;
				}
			}
			if (temp==0){
				System.out.println("没有此商品！输入0可以退出添加商品界面,输入其他数字可继续操作");
			}else{
				System.out.println("请选择修改方向：1、修改全部信息 2、修改商品名称 3、修改商品价格 4、修改商品数量 5、取消这次操作");
				int temp1=scanner.nextInt();
				switch (temp1){
					case 1:
						Item item=new Item();
						System.out.println("请输入新的商品名称：");
						item.setName(scanner.next());//名字
						System.out.println("请输入新的商品单价：");
						item.setPrice(scanner.nextDouble()); //价格
						System.out.println("请输入新的商品数量：");
						item.setNumber(scanner.nextDouble());//数量
						int temp2=0;
						for (int i=0;i<list.size();i++){
							if (list.get(i).getName().equals(item.getName())==true){
								temp2=1;
								break;
							}
						}
						if (temp2==0){
							list.set(index1,item);
							System.out.println("修改成功！输入0可以退出修改商品界面,输入其他数字可继续操作");
						}else{
							System.out.println("修改失败！该商品已存在！输入0可以退出修改商品界面,输入其他数字可继续操作");
						}
						break;
					case 2:
						Item item1=new Item();
						item1.setID(index1);
						System.out.println("请输入新的商品名称：");
						item1.setName(scanner.next());//名字
						item1.setPrice(list.get(index1).getPrice()); //价格
						item1.setNumber(list.get(index1).getNumber());//数量
						int temp3=0;
						for (int i=0;i<list.size();i++){
							if (list.get(i).getName().equals(item1.getName())==true){
								temp3=1;
								break;
							}
						}
						if (temp3==0){
							list.set(index1,item1);
							System.out.println("修改成功！输入0可以退出修改商品界面,输入其他数字可继续操作");
						}else{
							System.out.println("修改失败！该商品已存在！输入0可以退出修改商品界面,输入其他数字可继续操作");
						}
						break;
					case 3:
						Item item2=new Item();
						item2.setID(index1);
						item2.setName(list.get(index1).getName());//名字
						System.out.println("请输入新的商品价格：");
						item2.setPrice(scanner.nextDouble()); //价格
						item2.setNumber(list.get(index1).getNumber());//数量
						list.set(index1,item2);
						System.out.println("修改成功！输入0可以退出修改商品界面,输入其他数字可继续操作");
						break;
					case 4:
						Item item3=new Item();
						item3.setID(index1);
						item3.setName(list.get(index1).getName());//名字
						item3.setPrice(list.get(index1).getPrice()); //价格
						System.out.println("请输入新的商品数量：");
						item3.setNumber(scanner.nextDouble());//数量
						list.set(index1,item3);
						System.out.println("修改成功！输入0可以退出修改商品界面,输入其他数字可继续操作");
						break;
					case 5:
						System.out.println("您取消了本次操作！输入0可以退出修改商品界面,输入其他数字可继续操作");
						break;
					default:
						System.out.println("您输入的命令无效请重新输入：");
						temp1=scanner.nextInt();
				}
			}
			k=scanner.nextInt();
		}


	}

	private static void deleteFruitList(ArrayList<Item> list) {
		// TODO Auto-generated method stub
		// 给提示 我输入 1111
		Scanner scanner=new Scanner(System.in);
		System.out.println("输入任意数字开始删除商品，输入0退出删除商品界面");
		int k=scanner.nextInt();
		while (k!=0){
			System.out.println("请输入您想要删除的商品的名字：");
			String deletName=scanner.next();
			int temp=0;
			int index = 0;
			for (int i=0;i<list.size();i++){
				if (list.get(i).getName().equals(deletName)==true){
					temp=1;
					index=i;
					break;
				}
			}
			if (temp==0){
				System.out.println("没有此商品！输入0可以退出删除商品界面，输入其他数字可继续操作");
			}else{
				list.remove(index);
				System.out.println("删除成功！输入0可以退出删除商品界面，输入其他数字可继续操作");
			}
			k=scanner.nextInt();
		}


	}

	private static void addFruitList(ArrayList<Item> list) {
		//id 系统自己增加
		Scanner scanner=new Scanner(System.in);
		System.out.println("输入任意数字开始添加商品，输入0退出添加商品界面");
		int k=scanner.nextInt();
		while (k!=0){
			Item item=new Item();
			item.setID(list.size()+1);
			System.out.println("请输入商品名称：");
			item.setName(scanner.next());//名字
			System.out.println("请输入商品单价：");
			item.setPrice(scanner.nextDouble()); //价格
			System.out.println("请输入商品数量：");
			item.setNumber(scanner.nextDouble());//数量
			int temp=0;
			for (int i=0;i<list.size();i++){
				if (list.get(i).getName().equals(item.getName())==true){
					temp=1;
					break;
				}
			}
			if (temp==0){
				list.add(item);
				System.out.println("添加成功！输入0可以退出添加商品界面,输入其他数字和继续操作");
			}else{
				System.out.println("添加失败！该商品已存在！输入0可以退出添加商品界面，输入其他数字和继续操作");
			}
			k=scanner.nextInt();
		}
	}

	private static void showFruitList(ArrayList<Item> list) {
		/*
		 商品编号 商品名称 商品单价  商品数量
		 1001    aa     10    1
 		 1002    ab		20    2
		 1003		c		30   3 
		 总价为:140  数量为6
		 */
		double sumPrice=0;
		double sumNumber=0;
		System.out.println("商品编号 商品名称 商品单价  商品数量");
		for (int i=0;i<list.size();i++){
			System.out.println(list.get(i).getID()+"         "+list.get(i).getName()+"       "+list.get(i).getPrice()+"        "+list.get(i).getNumber());
			sumPrice+=list.get(i).getPrice()*list.get(i).getNumber();
			sumNumber+=list.get(i).getNumber();
		}
		System.out.println("总价为:"+sumPrice+"  数量为"+sumNumber);
	}

	private static void mainMenu() {
		System.out.println("======欢迎来到库存管理系统============");
		System.out.println("1.查询货物2.添加新的货物3.删除货物4修改货物5.搜索商品6.退出系统");
	}
}
